#pragma once

#include "ScriptCompiler/AST/ExpressionNode.h"

class CScriptToken;
class CFunctionCallNode;
class CTypeNode;

class CNewNode : public CExpressionNode
{
public:
    CNewNode(std::weak_ptr<CScriptFileContext> InFile);

    std::shared_ptr<CScriptToken> New;

    std::shared_ptr<CTypeNode> Type;

    TVector<std::shared_ptr<CExpressionNode>> Arguments;

    // std::shared_ptr<CFunctionCallNode> ConstructorInvocation;
    

    virtual void DebugPrint(int32_t InDepth) override;

    virtual std::shared_ptr<CScriptToken> GetFirstToken() override;

};